/*
 Navicat Premium Data Transfer

 Source Server         : 城南小楼
 Source Server Type    : MySQL
 Source Server Version : 50728
 Source Host           : localhost
 Source Database       : TakeawayGo

 Target Server Type    : MySQL
 Target Server Version : 50728
 File Encoding         : utf-8

 Date: 07/15/2020 14:16:51 PM
*/

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `Address`
-- ----------------------------
DROP TABLE IF EXISTS `Address`;
CREATE TABLE `Address` (
  `AddressID` int(11) NOT NULL AUTO_INCREMENT COMMENT '地址ID 主键 自动递增',
  `UserID` int(11) DEFAULT NULL COMMENT '引用 用户ID',
  `addrProvince` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '所在省',
  `addrCity` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '所在市',
  `addrBlock` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '所在区',
  `addrDetail` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '精确至门牌号的详细信息',
  `targetName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '收件人姓名',
  `Telphone` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '收件人电话号码',
  `MID` int(11) DEFAULT NULL,
  PRIMARY KEY (`AddressID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Administrator`
-- ----------------------------
DROP TABLE IF EXISTS `Administrator`;
CREATE TABLE `Administrator` (
  `AdminID` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员ID 主键 自动递增',
  `aNum` int(11) DEFAULT NULL COMMENT '管理员序号 八成没用，但是先放着。或许可以设为登陆账户？',
  `aName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '管理员姓名',
  `aPasswd` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '管理员密码',
  PRIMARY KEY (`AdminID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Records of `Administrator`
-- ----------------------------
BEGIN;
INSERT INTO `Administrator` VALUES ('1', null, '1', '1');
COMMIT;

-- ----------------------------
--  Table structure for `Coupon`
-- ----------------------------
DROP TABLE IF EXISTS `Coupon`;
CREATE TABLE `Coupon` (
  `CouponID` int(11) NOT NULL AUTO_INCREMENT COMMENT '优惠券ID，ID与优惠券的种类绑定，即，相同的数张优惠券，都是同一个表项',
  `MID` int(11) DEFAULT NULL COMMENT '引用 商家ID',
  `cValue` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '优惠券能减免的那部分金额大小',
  `cRequire` int(11) NOT NULL DEFAULT '0' COMMENT '优惠券需要的 集单要求数',
  `fromDate` datetime DEFAULT NULL COMMENT '券的生效日期',
  `endDate` datetime DEFAULT NULL COMMENT '券的失效日期',
  PRIMARY KEY (`CouponID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Full_Reduction`
-- ----------------------------
DROP TABLE IF EXISTS `Full_Reduction`;
CREATE TABLE `Full_Reduction` (
  `FullReduceID` int(11) NOT NULL AUTO_INCREMENT COMMENT '满减方案ID 主键 自动递增',
  `MID` int(11) DEFAULT NULL COMMENT '引用 商家ID',
  `frRequire` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '满A减B 的 A',
  `frValue` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '满A减B 的 B',
  `frMode` int(1) NOT NULL DEFAULT '0' COMMENT 'Flag——是否可与优惠券叠加 有效意义值 0:不可叠加 1:可叠加',
  PRIMARY KEY (`FullReduceID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Merchant`
-- ----------------------------
DROP TABLE IF EXISTS `Merchant`;
CREATE TABLE `Merchant` (
  `MID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商家ID 主键 自动递增',
  `mName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '商家名字',
  `mStars` decimal(4,2) DEFAULT NULL COMMENT '商家星级 理论值 0.0～5.0 ',
  `mCostAve` decimal(20,2) DEFAULT NULL,
  `mCostCnt` decimal(20,2) DEFAULT NULL,
  `AddressID` int(11) NOT NULL,
  PRIMARY KEY (`MID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Records of `Merchant`
-- ----------------------------
BEGIN;
INSERT INTO `Merchant` VALUES ('1', '一号老店', '1.00', '10.00', '1000.00', '5'), ('2', '二号老店', '2.00', '20.00', '2000.00', '6'), ('3', '三号老店', '3.00', '30.00', '3000.00', '7');
COMMIT;

-- ----------------------------
--  Table structure for `OrderProjects`
-- ----------------------------
DROP TABLE IF EXISTS `OrderProjects`;
CREATE TABLE `OrderProjects` (
  `ProductID` int(11) NOT NULL COMMENT '引用 商品ID',
  `OrderID` int(11) NOT NULL COMMENT '引用 订单ID',
  `OrderProjectsID` int(11) DEFAULT NULL COMMENT '唯一ID，删除的是时候还是好用的',
  `opCnt` decimal(20,2) NOT NULL COMMENT '商品的数量',
  `opSum` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '商品的总价',
  `opDiscount` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '单个商品优惠了的金额',
  `pName` varchar(255) COLLATE utf8_bin NOT NULL,
  `MID` int(11) NOT NULL,
  `mName` varchar(255) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`ProductID`,`OrderID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Orders`
-- ----------------------------
DROP TABLE IF EXISTS `Orders`;
CREATE TABLE `Orders` (
  `OrderID` int(11) NOT NULL AUTO_INCREMENT,
  `oRiderID` int(11) DEFAULT NULL COMMENT '引用 骑手ID',
  `UserID` int(11) NOT NULL COMMENT '引用 用户ID',
  `oRiderWorkID` int(11) DEFAULT NULL COMMENT '引用 骑手订单ID',
  `oCouponID` int(11) DEFAULT NULL COMMENT '引用 优惠券ID',
  `oValue` decimal(20,2) NOT NULL COMMENT '订单原价',
  `oRealValue` decimal(20,2) NOT NULL COMMENT '订单实际支付价格',
  `oFullReduceID` int(11) DEFAULT NULL COMMENT '引用 满减ID',
  `creatTime` datetime NOT NULL COMMENT '订单创建时间',
  `planTime` datetime DEFAULT NULL COMMENT '期望订单送达时间',
  `oStatus` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '订单当前状态 字符串 Java 解析 有效对象：配送中，超时，已送达，取消订单',
  `uAddressID` int(11) DEFAULT NULL COMMENT '引用 用户地址ID',
  `mAddressID` int(11) DEFAULT NULL,
  `MID` int(11) DEFAULT NULL,
  PRIMARY KEY (`OrderID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Product`
-- ----------------------------
DROP TABLE IF EXISTS `Product`;
CREATE TABLE `Product` (
  `ProductID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品 主键 自动递增',
  `productDirID` int(11) DEFAULT NULL COMMENT '引用 当前所在商品分类目录的目录ID',
  `pName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '商品的名字',
  `pValue` decimal(20,2) NOT NULL COMMENT '商品的挂牌价',
  `pRealValue` decimal(20,2) NOT NULL COMMENT '商品真正的售价',
  `store` decimal(20,2) DEFAULT '9999999.00' COMMENT '库存余量',
  `MID` int(11) DEFAULT NULL,
  `mName` varchar(255) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`ProductID`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Records of `Product`
-- ----------------------------
BEGIN;
INSERT INTO `Product` VALUES ('1', '1', '三七', '100.00', '99.00', '9999990.00', '1', '一号老店'), ('2', '1', '当归', '100.00', '37.00', '9999977.00', '1', '一号老店'), ('3', '1', '党参', '100.00', '19.00', '9999999.00', '1', '一号老店'), ('4', '2', '阿胶', '200.00', '199.00', '9999999.00', '1', '一号老店'), ('5', '2', '龟苓膏', '200.00', '188.00', '9999999.00', '1', '一号老店'), ('6', '3', '红花油', '300.00', '299.00', '9999999.00', '2', '二号老店'), ('7', '3', '云南白药', '300.00', '288.00', '9999999.00', '2', '二号老店'), ('8', '4', '蓝山咖啡', '400.00', '399.00', '9999999.00', '3', '三号老店'), ('9', '4', '老牌安定', '400.00', '388.00', '9999999.00', '3', '三号老店'), ('16', '1', '测试库存不足', '2.00', '2.00', '3.00', '1', '一号老店');
COMMIT;

-- ----------------------------
--  Table structure for `Product_Comment`
-- ----------------------------
DROP TABLE IF EXISTS `Product_Comment`;
CREATE TABLE `Product_Comment` (
  `product_CommentID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品评论ID 主键 自动递增',
  `UserID` int(11) DEFAULT NULL COMMENT '引用 此评论的发表用户ID',
  `ProductID` int(11) DEFAULT NULL COMMENT '引用 此评论针对的商品的ID',
  `pcMsg` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '评论的内容',
  `pcDate` datetime NOT NULL COMMENT '评论的日期',
  `pcStar` decimal(4,2) DEFAULT NULL COMMENT '评价给出商品的星级',
  `pcImg` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '评价中附加的照片的Base64或者是URL',
  PRIMARY KEY (`product_CommentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Product_Dir`
-- ----------------------------
DROP TABLE IF EXISTS `Product_Dir`;
CREATE TABLE `Product_Dir` (
  `productDirID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品类别ID 目录ID 主键 自动递增',
  `MID` int(11) DEFAULT NULL COMMENT '引用 商家ID',
  `pdOrder` int(20) NOT NULL COMMENT '商品种类的序号 不同的商品种类按这个序号来从小到大排列 非自增 需Java程序保证其连续有序',
  `pdName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '商品分类目录的名字',
  `pdCnt` int(11) NOT NULL DEFAULT '0' COMMENT '当前目录下的商品种类计数',
  PRIMARY KEY (`productDirID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Records of `Product_Dir`
-- ----------------------------
BEGIN;
INSERT INTO `Product_Dir` VALUES ('1', '1', '1', '中药百味', '3'), ('2', '1', '2', '成品药剂', '3'), ('3', '2', '1', '跌打损伤', '2'), ('4', '3', '1', '不如睡觉', '2');
COMMIT;

-- ----------------------------
--  Table structure for `Rider`
-- ----------------------------
DROP TABLE IF EXISTS `Rider`;
CREATE TABLE `Rider` (
  `RiderID` int(11) NOT NULL AUTO_INCREMENT COMMENT '骑手ID 主键 自动递增',
  `rName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '骑手名字',
  `rTime` datetime NOT NULL COMMENT '骑手的注册时间',
  `rLevel` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '骑手的身份水平，字符串，Java程序内解，有效对象：新人，正式员工，单王',
  `loginName` varchar(255) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`RiderID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Rider_Work`
-- ----------------------------
DROP TABLE IF EXISTS `Rider_Work`;
CREATE TABLE `Rider_Work` (
  `RiderWorkID` int(11) NOT NULL AUTO_INCREMENT COMMENT '骑手一次工作的记录 的 ID，主键 自动递增',
  `RiderID` int(11) DEFAULT NULL COMMENT '引用，该骑手的ID',
  `OrderID` int(11) DEFAULT NULL COMMENT '引用 该订单的ID',
  `rwPayTime` datetime DEFAULT NULL COMMENT '骑手收益到账的时间（用户支付时间）',
  `rwPayValue` decimal(20,2) NOT NULL COMMENT '骑手本次出工的收入',
  PRIMARY KEY (`RiderWorkID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `User_Convert_Coupon`
-- ----------------------------
DROP TABLE IF EXISTS `User_Convert_Coupon`;
CREATE TABLE `User_Convert_Coupon` (
  `UserID` int(11) NOT NULL COMMENT '引用 用户ID ',
  `CouponID` int(11) NOT NULL COMMENT '引用 优惠券ID ',
  `orderCnt` int(11) DEFAULT NULL COMMENT '即 已订单数',
  `MID` int(11) DEFAULT NULL COMMENT '引用 商家ID',
  `cRequire` int(11) DEFAULT '0' COMMENT '引用 集单要求数',
  PRIMARY KEY (`UserID`,`CouponID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `User_Coupon`
-- ----------------------------
DROP TABLE IF EXISTS `User_Coupon`;
CREATE TABLE `User_Coupon` (
  `UserID` int(11) NOT NULL COMMENT '引用 用户ID ',
  `CouponID` int(11) NOT NULL COMMENT '引用 优惠券ID',
  `MID` int(11) NOT NULL COMMENT '引用 优惠券所属的商家ID',
  `ucCnt` int(11) NOT NULL DEFAULT '0' COMMENT '这个用户持有的这种优惠券的数量',
  `cValue` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '引用 这种优惠券 能 减免的金额大小',
  `endDate` datetime DEFAULT NULL COMMENT '引用 优惠券的有效截止日期  或  本次有效持有的截止日期',
  PRIMARY KEY (`UserID`,`CouponID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Table structure for `Users`
-- ----------------------------
DROP TABLE IF EXISTS `Users`;
CREATE TABLE `Users` (
  `UserID` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID 主键 自动递增',
  `uName` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '用户的名字 昵称',
  `uSex` int(2) DEFAULT NULL COMMENT '用户的性别 整数 Java内解析 0:女 1:男  else:未知',
  `loginName` varchar(255) COLLATE utf8_bin NOT NULL,
  `uPasswd` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '用户的密码',
  `uTelnumber` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '用户的手机号码',
  `uEmail` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '用户的Email地址',
  `uCity` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '用户所在城市名',
  `uRegDate` datetime NOT NULL COMMENT '用户注册日期',
  `uVIP` int(2) DEFAULT '0' COMMENT '正数 标示 现在是否是 VIP ，Java解析 有效对象 0:不是 1:是',
  `uVIPtill` datetime DEFAULT NULL COMMENT 'VIP到期时间',
  PRIMARY KEY (`UserID`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
--  Records of `Users`
-- ----------------------------
BEGIN;
INSERT INTO `Users` VALUES ('1', '许仙', '1', '1', '1', '12345678999', '1052886775@qq.com', '杭州', '2020-07-04 15:16:07', '0', '1999-11-11 11:11:11');
COMMIT;

-- ----------------------------
--  View structure for `riderinfo`
-- ----------------------------
DROP VIEW IF EXISTS `riderinfo`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `riderinfo` AS select `r`.`RiderID` AS `RiderID`,`r`.`loginName` AS `loginName`,`r`.`rName` AS `rName`,`r`.`rLevel` AS `rLevel`,`r`.`rTime` AS `rTime`,count(`w`.`OrderID`) AS `workCnt` from (`rider` `r` left join `rider_work` `w` on((`r`.`RiderID` = `w`.`RiderID`))) group by `r`.`RiderID`;

-- ----------------------------
--  View structure for `viewadminuser`
-- ----------------------------
DROP VIEW IF EXISTS `viewadminuser`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `viewadminuser` AS select `u`.`UserID` AS `UserID`,`u`.`uName` AS `uName`,`u`.`loginName` AS `loginName`,`u`.`uPasswd` AS `uPasswd`,`u`.`uRegDate` AS `uRegDate`,`o`.`OrderID` AS `OrderID`,`o`.`oStatus` AS `oStatus`,`u`.`uVIP` AS `uVIP`,`u`.`uVIPtill` AS `uVIPtill` from (`users` `u` left join `orders` `o` on((`u`.`UserID` = `o`.`UserID`))) order by `u`.`UserID`;

-- ----------------------------
--  View structure for `viewuserorder`
-- ----------------------------
DROP VIEW IF EXISTS `viewuserorder`;
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `viewuserorder` AS select `o`.`OrderID` AS `OrderID`,`o`.`UserID` AS `UserID`,`o`.`oRiderID` AS `RiderID`,`r`.`rName` AS `rName`,`o`.`MID` AS `MID`,`m`.`mName` AS `mName`,`u`.`uTelnumber` AS `uTelphone`,`o`.`planTime` AS `planTime`,`o`.`oValue` AS `oValue`,`o`.`oRealValue` AS `oRealValue`,`o`.`oStatus` AS `oStatus`,concat(`am`.`addrProvince`,' ',`am`.`addrCity`,' ',`am`.`addrBlock`,' ',`am`.`addrDetail`,' ',':',' ',`am`.`targetName`) AS `mAddr`,concat(`au`.`addrProvince`,' ',`au`.`addrCity`,' ',`au`.`addrBlock`,' ',`au`.`addrDetail`,' ',':',' ',`au`.`targetName`) AS `uAddr` from (((((`orders` `o` left join `merchant` `m` on((`o`.`MID` = `m`.`MID`))) left join `address` `am` on((`m`.`AddressID` = `am`.`AddressID`))) left join `rider` `r` on((`o`.`oRiderID` = `r`.`RiderID`))) left join `address` `au` on((`o`.`uAddressID` = `au`.`AddressID`))) left join `users` `u` on((`o`.`UserID` = `u`.`UserID`)));

SET FOREIGN_KEY_CHECKS = 1;
